package com.qys.training.biz.utils;

import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.pdf.*;
import com.qys.training.base.enumerate.FontEnum;

import java.io.FileOutputStream;

/**
 * 封装一些通过Itext对PDF的操作
 *
 * @author Winstone
 * @date 2020/8/6 - 1:27 下午
 */
public class PDFUtil {


    /**
     * 最简单的实现方式。
     *
     * @param filePath
     * @param tempPath
     * @param text
     * @param x
     * @param y
     * @param pageNum
     * @param font     暂时没用上
     * @throws Exception
     */
    public static void addText(String filePath, String tempPath, String text, float x, float y, int pageNum, String font, float fontSize) throws Exception {
        // 创建 PdfStamper
        PdfReader reader = new PdfReader(filePath);
        PdfStamper stamper = new PdfStamper(reader, new FileOutputStream(tempPath));


        stamper.setRotateContents(false);
        PdfContentByte canvas = stamper.getOverContent(pageNum);

        // 对字体进行设置
        BaseFont baseFont = BaseFont.createFont(font, BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
        Font ifont = new Font(baseFont, fontSize);

        ColumnText.showTextAligned(canvas, Element.ALIGN_LEFT, new Phrase(text, ifont), x, y, 0);
        stamper.close();
    }


}
